// 该文件是整个项目的入口文件
//引入Vue，这里的是残缺版的vue，import Vue from 'vue/dist/vue'才是完整vue
import Vue from 'vue/dist/vue'
// 引入App组件，它是所有组件的父组件
import App from './App.vue'
// 关闭vue的生产提示
Vue.config.productionTip = false

// 创建vue实例对象vm
new Vue({
  // el:'#app', //等同于下面的$.mount('#app')
  // render: h => h(App),

  // 2.render：当引用的是残缺版vue，不能在实例中使用template参数，就要借助render函数来解析组件中的tempalte，残缺版vue不能解析template参数
  // render函数原来的写法，有一个参数-创建元素，用这个东西创建，上面引入App组件代码要注释
  render(createElement) {
    return createElement('h1',"你好啊") //第一个参数是标签，第二个是内容，并return回去
  },
  //因为没有用到this，可以简写成箭头函数
  render:(createElement) => {
    return createElement('h1',"你好啊") //第一个参数是标签，第二个是内容，并return回去
  },
  //只有一个参数，括号也可以省略
  render:createElement => {
    return createElement('h1',"你好啊") //第一个参数是标签，第二个是内容，并return回去
  },
  //里面只有一个函数体，并要return，又可以简写
  render:createElement => createElement('h1',"你好啊"),
  //createElement只是个参数，可以用别的代替
  // 和render: h => h(App),区别，一个是俩参数，一个是一个组件。因为这里要穿HTML元素，而App是个组件，HTML元素都在组件里了
  render:q => q('h1',"你好啊")
}).$mount('#app')

// $mount('#app') 相当于在实例对象里声明 el:'#app'

//1.使用之前的方式创建Vue实例，在App.vue中的template标签不会生效，要在实例中使用template模板
// new Vue({
//   el:'#app',
//   template:'<h1>你好</h1>',
//   components:{App}
// })
